/**
 * @author joshua
 */

joshua.clientes.Grid=Ext.extend(Ext.grid.GridPanel,{
    region:'center',
    initComponent:function(){	
        var yo__=this;
        this.form= new joshua.clientes.Form({
            success: function(form, action){
                var respuesta = Ext.util.JSON.decode(action.response.responseText);
                this.limpiarForm();
                this.hide();
                yo__.listar('{"txtId":"' + respuesta.id + '"}');
            }
        });
        joshua.clientes.store=new Ext.data.JsonStore(joshua.clientes.configstore);
		
        var pagingBar = new Ext.PagingToolbar({
            pageSize: 25,
            store: joshua.clientes.store,
            displayInfo: true,
            displayMsg: 'Mostrando clientes {0} - {1} of {2}',
            emptyMsg: "Ningun cliente encontrado"
        });
		
        this.sltBuscarCliente=new joshua.combos.ClienteCombox({
            layout:'form',
            fieldLabel:'buscar',
            listeners:{
                select:function(record){
                    joshua.clientes.grid.store.reload({
                        params:{
                            start: 0,
                            limit:joshua.PAGINA_CUANTOS,
                            condiciones:'{"txtId":"'+record.getValue()+'"}'
                        }
                    });
                }
            }
        });
        var config={
            tbar:[
            {
                iconCls:'cliente_nuevo',
                tooltip:'Presione para ingresar a un cliente nuevo',
                text:'<b>Agregar</b>',
                scope:this,
                handler: function(){
                    this.form.mostrarForm('insertar');
						
                //joshua.clientes._agregarBotonesForm();
                }
            },'-',
            {
                text:'<b>Editar</b>',
                iconCls:'cliente_editar',
                scope:this,
                tooltip:'Presione para editar al cliente seleccionado',
                handler: function(){
                    var seleccionado= this.getIdseleccionado();
                    this.form.mostrarForm('editar',seleccionado);
                }
            },'-',
            {
                text:'<b>Eliminar</b>',
                iconCls:'cliente_borrar',
                scope:this,
                hidden:joshua.hidden,
                tooltip:'Presione para eliminar al cliente seleccionado',
                handler: function (){
                    var seleccionado= this.getIdseleccionado();
						
                    var _yoo=this;
                    if (seleccionado) {
                        Ext.MessageBox.confirm('Confirmar','Esta seguro que desea eliminar al cliente seleccionado',
                            function (btn){
                                if(btn=='yes'){
                                    Ext.Ajax.request({
                                        url:joshua.url,
                                        params: {
                                            txtId:seleccionado,
                                            cmd:'eliminar',
                                            className:'Cliente'
                                        },
                                        success:function (){
                                            _yoo.listar("{}");
                                            _yoo.sltBuscarCliente.store.reload();
                                        }
                                    });//eo ajaxrequest
                                }
                            },this);//eo msg box
                    }else
                        joshua.funciones.alert('aviso','Aviso',"Debe selecionar un cliente");
                }
            }
            ],
            store:joshua.clientes.store,
            columns: [
            new Ext.grid.RowNumberer(),
            {
                header: joshua.util.icono.credencial+' Datos personales',
                iconCls:'cliente_borrar',
                dataIndex: 'datos',
                sortable: true
            }
            ],
            autoExpandColumn:1,
            bbar:pagingBar
        };

        Ext.apply(this,Ext.apply(this.initialConfig,config));
				
        joshua.clientes.Grid.superclass.initComponent.apply(this,arguments);
    },
 	
    onRender:function(){
        joshua.clientes.Grid.superclass.onRender.apply(this,arguments);
		
        new Ext.Toolbar({
            renderTo: this.tbar,
            items: ['<b>Buscar : </b>', '-', this.sltBuscarCliente, '-', {
                text: 'Buscar',
                iconCls: 'buscar',
                scope: this,
                handler: function (){
                    var comvo_valor=this.sltBuscarCliente.getRawValue();
                    this.listar('{"nombres":"'+comvo_valor+'"}');//---
                }
            },{
                text: 'Limpiar',
                iconCls: 'refrescar',
                scope: this,
                handler: function (){
                    this.store.reload({
                        params:{
                            start: 0,
                            limit:joshua.PAGINA_CUANTOS,
                            condiciones:'{}'
                        }
                    });
                }
            }]
        });
    },
    listar: function (valor){
        valor=(valor==undefined || valor=="")?"":valor;
        this.store.reload({
            params:{
                start: 0,
                limit:joshua.PAGINA_CUANTOS,
                condiciones:valor
            }
        });
    },
    getIdseleccionado: function (){
        var sm= this.getSelectionModel();
		
        if(sm.hasSelection()){
            var sel= sm.getSelected();
            return sel.data.id;
        }
        return false;
    }
});